org.apache.torque.adapter
Class DBDB2App

java.lang.Object
  extended by org.apache.torque.adapter.AbstractDBAdapter
      extended by org.apache.torque.adapter.DBDB2App
All Implemented Interfaces:
java.io.Serializable, DB, IDMethod
Direct Known Subclasses:
DBDB2400, DBDB2Net

public class DBDB2App
extends AbstractDBAdapter

This is used to connect via the Application-Driver to DB2 databases. http://www-306.ibm.com/software/data/db2/

Version:
$Id: DBDB2App.java 473821 2006-11-11 22:37:25Z tv $
Author:
Hakan Tandogan, Augustin Vidovic
See Also:
Serialized Form

Field Summary
 
Fields inherited from interface org.apache.torque.adapter.DB
ADAPTER_KEY, DRIVER_KEY, LIMIT_STYLE_DB2, LIMIT_STYLE_MYSQL, LIMIT_STYLE_NONE, LIMIT_STYLE_ORACLE, LIMIT_STYLE_POSTGRES, LIMIT_STYLE_SYBASE
 
Fields inherited from interface org.apache.torque.adapter.IDMethod
AUTO_INCREMENT, ID_BROKER, NATIVE, NO_ID_METHOD, SEQUENCE
 
Constructor Summary
protected DBDB2App()
          Empty constructor.
 
Method Summary
 void generateLimits(Query query, int offset, int limit)
          Build DB2 (OLAP) -style query with limit or offset.
 java.lang.String getIDMethodSQL(java.lang.Object obj)
          Returns SQL used to get the most recently inserted primary key.
 java.lang.String getIDMethodType()
          Returns the constant from the IDMethod interface denoting which type of primary key generation method this type of RDBMS uses.
 int getLimitStyle()
          Deprecated. This should not be exposed to the outside
 java.lang.String ignoreCase(java.lang.String in)
          This method is used to ignore case.
 void lockTable(java.sql.Connection con, java.lang.String table)
          Locks the specified table.
 boolean supportsNativeLimit()
          Return true for DB2
 boolean supportsNativeOffset()
          Return true for DB2
 java.lang.String toUpperCase(java.lang.String in)
          This method is used to ignore case.
 void unlockTable(java.sql.Connection con, java.lang.String table)
          Unlocks the specified table.
 
Methods inherited from class org.apache.torque.adapter.AbstractDBAdapter
escapeText, getBooleanString, getDateString, getFunctionClass, getStringDelimiter, ignoreCaseInOrderBy, useEscapeClauseForLike, useIlike
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DBDB2App

protected DBDB2App()
Empty constructor.

Method Detail

toUpperCase

public java.lang.String toUpperCase(java.lang.String in)
This method is used to ignore case.

Specified by:
toUpperCase in interface DB
Specified by:
toUpperCase in class AbstractDBAdapter
Parameters:
in - The string to transform to upper case.
Returns:
The upper case string.

ignoreCase

public java.lang.String ignoreCase(java.lang.String in)
This method is used to ignore case.

Specified by:
ignoreCase in interface DB
Specified by:
ignoreCase in class AbstractDBAdapter
Parameters:
in - The string whose case to ignore.
Returns:
The string in a case that can be ignored.

getIDMethodType

public java.lang.String getIDMethodType()
Description copied from class: AbstractDBAdapter
Returns the constant from the IDMethod interface denoting which type of primary key generation method this type of RDBMS uses.

Specified by:
getIDMethodType in interface DB
Specified by:
getIDMethodType in class AbstractDBAdapter
Returns:
IDMethod constant
See Also:
DB.getIDMethodType()

getIDMethodSQL

public java.lang.String getIDMethodSQL(java.lang.Object obj)
Description copied from class: AbstractDBAdapter
Returns SQL used to get the most recently inserted primary key. Databases which have no support for this return null.

Specified by:
getIDMethodSQL in interface DB
Specified by:
getIDMethodSQL in class AbstractDBAdapter
Parameters:
obj - Information used for key generation.
Returns:
The most recently inserted database key.
See Also:
DB.getIDMethodSQL(Object obj)

lockTable

public void lockTable(java.sql.Connection con,
                      java.lang.String table)
               throws java.sql.SQLException
Locks the specified table.

Specified by:
lockTable in interface DB
Specified by:
lockTable in class AbstractDBAdapter
Parameters:
con - The JDBC connection to use.
table - The name of the table to lock.
Throws:
java.sql.SQLException - No Statement could be created or executed.

unlockTable

public void unlockTable(java.sql.Connection con,
                        java.lang.String table)
                 throws java.sql.SQLException
Unlocks the specified table.

Specified by:
unlockTable in interface DB
Specified by:
unlockTable in class AbstractDBAdapter
Parameters:
con - The JDBC connection to use.
table - The name of the table to unlock.
Throws:
java.sql.SQLException - No Statement could be created or executed.

getLimitStyle

public int getLimitStyle()
Deprecated. This should not be exposed to the outside

This method is used to check whether the database supports limiting the size of the resultset.

Specified by:
getLimitStyle in interface DB
Overrides:
getLimitStyle in class AbstractDBAdapter
Returns:
LIMIT_STYLE_DB2.

supportsNativeLimit

public boolean supportsNativeLimit()
Return true for DB2

Specified by:
supportsNativeLimit in interface DB
Overrides:
supportsNativeLimit in class AbstractDBAdapter
Returns:
True if the database natively supports limiting the size of the resultset.
See Also:
AbstractDBAdapter.supportsNativeLimit()

supportsNativeOffset

public boolean supportsNativeOffset()
Return true for DB2

Specified by:
supportsNativeOffset in interface DB
Overrides:
supportsNativeOffset in class AbstractDBAdapter
Returns:
True if the database natively supports returning results starting at an offset position other than 0.
See Also:
AbstractDBAdapter.supportsNativeOffset()

generateLimits

public void generateLimits(Query query,
                           int offset,
                           int limit)
Build DB2 (OLAP) -style query with limit or offset. If the original SQL is in variable: query then the requlting SQL looks like this:
 SELECT B.* FROM (
          SELECT A.*, row_number() over() as TORQUE$ROWNUM FROM (
                  query
          ) A
     ) B WHERE B.TORQUE$ROWNUM > offset AND B.TORQUE$ROWNUM
     <= offset + limit
 

Specified by:
generateLimits in interface DB
Overrides:
generateLimits in class AbstractDBAdapter
Parameters:
query - The query to modify
offset - the offset Value
limit - the limit Value


Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.